package com.zz.bsea.config.user;

import com.jfinal.aop.Before;
import com.jfinal.core.Controller;
import com.zz.bsea.model.Blog;
import com.zz.bsea.model.User;

/**
 * 本 demo 仅表达最为粗浅的 jfinal 用法，更为有价值的实用的企业级用法
 * 详见 JFinal 俱乐部: http://jfinal.com/club
 * 
 * BlogController
 * 所有 sql 与业务逻辑写在 Model 或 Service 中，不要写在 Controller 中，养成好习惯，有利于大型项目的开发与维护
 */
@Before(UserInterceptor.class)
public class LoginController extends Controller {
	
	UserService service = UserService.me;
	
	public void index() {
		System.out.println("----index-----");
		setAttr("loginmsg", getSessionAttr("loginmsg"));
		render("login.html");
	}
	
	public void add() {
	}
	
	/**
	 * save 与 update 的业务逻辑在实际应用中也应该放在 serivce 之中，
	 * 并要对数据进正确性进行验证，在此仅为了偷懒
	 */
	@Before(UserValidator.class)
	public void save() {
		getBean(User.class).save();
		redirect("/user");
	}
	
	public void getUser() {
		User u=service.findByNamePwd(getBean(User.class));
		if(u!=null){
			setSessionAttr("loginmsg", "");
			redirect("/blog");
		}else{
			setSessionAttr("loginmsg", "登录失败，请核对信息！");
			redirect("/login");
		}
	
	}
	
	/**
	 * save 与 update 的业务逻辑在实际应用中也应该放在 serivce 之中，
	 * 并要对数据进正确性进行验证，在此仅为了偷懒
	 */
	@Before(UserValidator.class)
	public void update() {
		getBean(Blog.class).update();
		redirect("/user");
	}
	
	public void delete() {
		service.deleteById(getParaToInt());
		redirect("/user");
	}
}


